/**
 * @properties={typeid:35,uuid:"17AA02E2-982E-4E5D-9FE5-EE9456FA44FA",variableType:4}
 */
var liq_tope_reng = 10;

/**
 * @properties={typeid:35,uuid:"3FC54B7B-506D-4551-AD4B-8AF07DE95B9E",variableType:6}
 */
var gPorcenComision = 7;

/**
 * @properties={typeid:35,uuid:"A6AC13E4-9207-4FD0-8A1E-3111D917436E",variableType:4}
 */
var fletero_id = null;

/**
 * @properties={typeid:35,uuid:"B9170314-5818-41D9-BD49-05F0382B0876",variableType:4}
 */
var gopcion_viajes_exportacion = 0;

/**
 * @properties={typeid:35,uuid:"527F83C3-28F5-4DDA-9201-6960ADD1E35E",variableType:6}
 */
var gporc_iva_fletes = 21;

/**
 * @properties={typeid:35,uuid:"0A79AC2D-536E-4328-9A1D-4CC762DF04C0",variableType:4}
 */
var gvalor_seis = 6;

/**
 * @properties={typeid:35,uuid:"18837FB8-9B92-4A4A-9FB8-ED87143DEE9A",variableType:4}
 */
var marca_primer_find = 0;

/**
 * @properties={typeid:35,uuid:"08DD8EAB-7DEE-4EAC-A6CC-53D3F918F11D",variableType:4}
 */
var valor_cero = 0;

/**
 * @properties={typeid:35,uuid:"85C58818-677A-4BF7-B22B-E481042F32C5",variableType:4}
 */
var valor_uno = 1;

/**
 *
 * @properties={typeid:24,uuid:"133E6CED-FB60-44F5-9EE3-9BCEB2F451A9"}
 */
function marca_fletero() {
	
	for (var i = 1; i<=795; i++)
	{
		forms.proveedor.controller.setSelectedIndex(i)
		forms.proveedor.es_fletero = 1
	}
}

/**
 * @properties={typeid:24,uuid:"84A6C749-1CBE-40FB-9CF6-135822C585A4"}
 */
function marca_acoplado()
{
	var cambios = 0
	var cant = databaseManager.getTableCount(forms.choferes.controller.getDataSource())
	for (var i = 1 ; i <= cant ; i++)
	{
		forms.choferes.controller.setSelectedIndex(i)
		
		
		if (forms.choferes.acoplado_id != null && forms.choferes.acoplado_id != 0)
		{
			forms.choferes.choferes_to_equipos.tipo_equipo = 1
			forms.choferes.choferes_to_equipos.proveedor_id = forms.choferes.proveedor_id
			cambios += 1
		}
		
		if (forms.choferes.equipo_id != null  && forms.choferes.equipo_id != 0)
		{
			forms.choferes.choferes_to_equipos2.tipo_equipo = 0
			forms.choferes.choferes_to_equipos2.proveedor_id = forms.choferes.proveedor_id
			cambios += 1
		}
	}
	//Uso: gDialog (Titulo, Mensaje, Boton1, nombreMetodoGlobal1 ... BotonN, nombreMetodoGlobalN)
	var mensaje = "Cant : " + cant + " - cambios : " + cambios
	globals.gDialog("Final de proceso", mensaje, "Ok",'CerrarForm' )
}

/**
 * Callback method for when solution is opened.
 *
 * @properties={typeid:24,uuid:"C793E85A-8963-4E0E-962D-0FBDBC69B79C"}
 */
function onSolutionOpen_viajes() {
	//globals.guserv_id=1  // esto debe reemplazarse por login
	application.setNumpadEnterAsFocusNextEnabled(true)
	globals.gproveedor_o_fletero=1   // para acceder a los fleteros
	globals.gPorcenComision = 8 //TODO reemplazar por lectura desde params
	globals.configuraCharConcat()
	databaseManager.addTableFilterParam( "infocom",  "viajes",  "baja_logica",  "=",  0,  "filtro_viajes")

	//databaseManager.addTableFilterParam( "infocom",  "proveedor",  "es_fletero",  "=",  1,  "filtro_fleteros")
	//globals.gParamsAmbos() //TODO 05-09-2011 da error - no encuentra la rutina
}

/**
 * Calculate the row background color.
 *
 * @param {Number} index row index
 * @param {Boolean} selected is the row selected
 * @param {String} elementType element type
 * @param {String} dataProviderID element data provider
 * @param {String} formName form name
 * @param {JSRecord} record selected record
 * @param {Boolean} edited is the record edited
 *
 * @returns {Color}
 *
 * @properties={typeid:24,uuid:"C53EE1D0-2E34-4D28-A6DF-F41E3D4975CD"}
 */
function rowBGColorCalculation(index, selected, elementType, dataProviderID, formName, record, edited) {
	// TODO Auto-generated method stub
	if (selected)
	{
		return '#FF0000';
	}
	else 
	{
		if (forms.viajes_consulta_filtros.estado_fac!=2)
		{
			return '#d8d7af'
		}
		else
		{
			return '#ffffff'
		}
	};
}

/**
 * @properties={typeid:24,uuid:"A89DED1B-5ECC-44EA-85F0-15ADA6CB2B8F"}
 */
function duplicacion_liq_cabecera(letra,sucursal,nro_aux) 
{
	var maxReturnedRows = 10;//useful to limit number of rows
	var query = 'select letra,sucursal,nro_liquidacion from liq_cabecera where letra = ? and sucursal = ? and nro_liquidacion = ?';
	var args = new Array();
	args[0] = letra
	args[1] = sucursal
	args[2] = nro_aux
	//var dataset = databaseManager.getDataSetByQuery(databaseManager.getDataSourceServerName(controller.getDatasource()), query, args, maxReturnedRows);
	var dataset = databaseManager.getDataSetByQuery('infocom', query, args, maxReturnedRows);
	globals.gfilas=dataset.getMaxRowIndex() // si es cero, no existe
}

/**
 * @properties={typeid:24,uuid:"824B0A62-E972-4BFA-96A3-109F9441C39B"}
 */
function gBajaLiq() 
{
	globals.CerrarForm()
	var liquidacion = forms.liq_baja_2.foundset
	
	if (liquidacion.liq_cabecera_to_ctacte_pr.importe == liquidacion.liq_cabecera_to_ctacte_pr.saldo)
	{
		databaseManager.startTransaction()
		//  02/08/2012  borrar aunque no este completa la Liq.
		if (forms.liq_baja_2.fAnulaBorra == 0)  // borrar
		{
			/* //  02/08/2012
			if (liquidacion.liq_cabecera_to_ctacte_pr.deleteAllRecords() == false)
			{
				databaseManager.rollbackTransaction()
				globals.gDialog('Error','No encontro el documento en Cta.Cte','OK','CerrarForm')
				return 0
			}  */
			liquidacion.liq_cabecera_to_ctacte_pr.deleteAllRecords() //  02/08/2012
		}
		else
		{ // anular
			if (liquidacion.liq_cabecera_to_ctacte_pr.getSize() != 0)
			{
				liquidacion.liq_cabecera_to_ctacte_pr.importe = 0
				liquidacion.liq_cabecera_to_ctacte_pr.saldo = 0
				liquidacion.liq_cabecera_to_ctacte_pr.neto = 0
				liquidacion.liq_cabecera_to_ctacte_pr.iva = 0
				liquidacion.liq_cabecera_to_ctacte_pr.iva_porc = 0
				liquidacion.liq_cabecera_to_ctacte_pr.neto_no_gravado = 0
				liquidacion.marca_anulacion=1 
			}  
			/* //  02/08/2012
			else
			{
				databaseManager.rollbackTransaction()
				globals.gDialog('Error','No encontro el documento en Cta.Cte','OK','CerrarForm')
				return 0
			}  */
		}
		// en borrar o anular se pone 2 en estado
		for (var i=1; i<=liquidacion.liq_cabecera_to_liq_detalle.getSize();i++)
		{
			liquidacion.liq_cabecera_to_liq_detalle.setSelectedIndex(i)							
			liquidacion.liq_cabecera_to_liq_detalle.liq_detalle_to_viajes.estado_id = 2
		}
		
		/* //  02/08/2012
		// borrar siempre la cabecera y el detalle    // 23/11/2010
		if (liquidacion.liq_cabecera_to_liq_detalle.deleteAllRecords() == false)
		{
			databaseManager.rollbackTransaction()
			globals.gDialog('Error','No encontro el detalle del documento','OK','CerrarForm')
			return 0
		}
		if (liquidacion.deleteRecord() == false)
		{
			databaseManager.rollbackTransaction()
			globals.gDialog('Error','No encontro la cabecera del documento','OK','CerrarForm')
			return 0
		}  */
		liquidacion.liq_cabecera_to_liq_detalle.deleteAllRecords()  //  02/08/2012
		liquidacion.deleteRecord()  //  02/08/2012
		
		if (databaseManager.commitTransaction() == true)
		{
			if (forms.liq_baja_2.fAnulaBorra == 0) // borra 27/09/2010
				globals.gDialog('Exito','Liquidacion dada de baja correctamente','OK','CerrarForm');
			else
				globals.gDialog('Exito','Liquidacion anulada correctamente','OK','CerrarForm');
		}
		else
		{
			databaseManager.rollbackTransaction()
			globals.gDialog('Error','No se pudo completar la operacion','OK','CerrarForm')
			return 0
		}
		databaseManager.refreshRecordFromDatabase(liquidacion,-1)
	}
	else
		globals.gDialog('Error','El importe y el saldo son distintos. IMPORTE: '+liquidacion.total+' SALDO: '+liquidacion.liq_cabecera_to_ctacte_pr.saldo,'OK','CerrarForm')
}

/**
 * @properties={typeid:24,uuid:"12AE4556-ACE0-4182-BEE3-A9BB4C5D82B4"}
 */
function gBajaAdelantoFletero() 
{
	globals.CerrarForm()
	var cabecera     = forms.opago_baja_adelanto_2.foundset
	var detalle      = cabecera.op_cabecera_to_op_detalle
	var comprobantes = cabecera.op_cabecera_to_op_detalle_comprob
	var retenciones  = cabecera.op_cabecera_to_op_retenciones
	var cta_cte      = cabecera.op_cabecera_to_ctacte_pr
	var certif       = cabecera.op_cabecera_to_reten_certificados 
	    
	databaseManager.startTransaction()
	//  02/08/2012  borrar aunque no este completo el adelanto
	
		//DETALLE
		if (detalle.getSize() != 0)
		{
			while (detalle.getSize() != 0)
			{
				detalle.setSelectedIndex(1)
				/*  //  02/08/2012
				if (detalle.op_detalle_to_movim_cyb.deleteRecord() == false)
				{
					databaseManager.rollbackTransaction()
					globals.gDialog('Error','No encontro el movimiento de caja y banco','OK','CerrarForm')
					return 0
				}  */ 
				detalle.op_detalle_to_movim_cyb.deleteRecord()  //  02/08/2012
				if (detalle.op_detalle_to_valores.es_cheque == 1)
				{
					if (detalle.op_detalle_to_valores.es_propio == 1)
					{
						detalle.op_detalle_id_to_cheques.deleteRecord()
					}
					else
					{
						detalle.op_detalle_to_cheques_id.fecha_entrega = null
						detalle.op_detalle_to_cheques_id.estado = globals.zconf_chq_en_caja						
						// fs_saldos.saldo_valores+=detalle.importe;  //15/10/2010	
						if (detalle.op_detalle_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja   // hace falta?
						{
							//detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_valores+=detalle.importe; // 23/11/2010
							detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_valores=globals.operacion(detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_valores,'+',detalle.importe); // 23/11/2010
						}				
					}
				}
				else
				{  // es efectivo o transferencia
					if (detalle.op_detalle_to_valores.usa_cta_bco == 0) // es efectivo
					{	
						if (detalle.op_detalle_to_cuentas_cyb.cuentas_tipo==0) // es cuenta caja  // hace falta?
						{
								//detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo+=detalle.importe; // 23/11/2010
								detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo=globals.operacion(detalle.op_detalle_to_cuentas_cyb.cuentas_cyb_to_saldos_caja.saldo_efectivo,'+',detalle.importe); // 23/11/2010
						}
					}
				}
				detalle.deleteRecord()
			}
		}  
		/* //  02/08/2012
		else
		{
			databaseManager.rollbackTransaction()
			globals.gDialog('Error','No encontro el detalle del documento','OK','CerrarForm')
			return 0
		}   */
		
			//NO TIENE COMPROBANTES 
			/*
			if (comprobantes.getSize() != 0)
			{
				while (comprobantes.getSize() != 0)
				{
					comprobantes.setSelectedIndex(1)
					
					comprobantes.op_detalle_comprob_to_ctacte_pr.saldo+= comprobantes.importe
					comprobantes.deleteRecord()
				}
			}		*/

				
		//RETENCIONES
		if (retenciones.getSize() != 0)
		{
			while (retenciones.getSize()!= 0)
			{
				retenciones.setSelectedIndex(1)
				/*  // 02/08/2012  
				if (retenciones.op_retenciones_to_ctacte_pr.deleteRecord() == false)
				{
					databaseManager.rollbackTransaction()
					globals.gDialog('Error','No encontro el movimiento de cuenta corriente de las retenciones','OK','CerrarForm')
					return 0
				}  */
				
				// 02/08/2012  se agrega find y search y delete ctacte_pr
 				retenciones.op_retenciones_to_ctacte_pr.find()
				retenciones.op_retenciones_to_ctacte_pr.proveedor_id=cabecera.proveedor_id
				retenciones.op_retenciones_to_ctacte_pr.cod_mov=retenciones.op_retenciones_to_retenciones.cod_mov;
				retenciones.op_retenciones_to_ctacte_pr.search()
				retenciones.op_retenciones_to_ctacte_pr.deleteRecord() 
				
				retenciones.deleteRecord()
			}
		}
			
		if (certif.getSize() != 0)  
		{
			while (certif.getSize()!= 0)
			{
				certif.setSelectedIndex(1)
				certif.deleteRecord()
			}
		}

		//CUENTA CORRIENTE
		
		/*  //  02/08/2012	
		if (cta_cte.getSize() != 0)
		{
			cta_cte.deleteRecord()
		}
		/*  //  02/08/2012		
		else
		{
			databaseManager.rollbackTransaction()
			globals.gDialog('Error','No encontro el movimiento de cuenta corriente del documento','OK','CerrarForm')
			return 0
		}   */ 
		var ctacte       = databaseManager.getFoundSet('infocom','ctacte_pr') 
		ctacte.find()
		ctacte.proveedor_id=cabecera.proveedor_id
		ctacte.cod_mov=5;
		ctacte.nro_factura=cabecera.nro_comprobante
		var found=ctacte.search()
		while (ctacte.getSize() != 0)
		{
			ctacte.setSelectedIndex(1)
			ctacte.deleteRecord()
		}
				
	//BORRAR LA CABECERA
	cabecera.deleteRecord()
	
	if (databaseManager.commitTransaction() == true)
	{
		// por ahora defino foundset de toda la tabla saldos_caja		
		var fs_saldos_caja= databaseManager.getFoundSet('infocom','saldos_caja') 
		databaseManager.refreshRecordFromDatabase(fs_saldos_caja, -1); 
		globals.gDialog('Exito','Adelanto a Fleteros dado de baja correctamente','OK','CerrarForm')
	}
	else
	{
		databaseManager.rollbackTransaction()
		globals.gDialog('Error','No se pudo completar la operacion','OK','CerrarForm')
	}
}
